﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using AgileSaude.Entities;
using AgileSaude.Business;
using FBS.Framework;
using AgileSaude.Business.Validation;

namespace AgileSaude.Web.Account
{
    public partial class Register : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Resultado resultado = new Resultado();

                CidadeEntities FiltroCidade = new CidadeEntities();

                //ddlCidade.DataTextField = "Nome";
                //ddlCidade.DataValueField = "IdCidade";

                //ddlCidade.DataSource = new CidadeFacade().Listar(FiltroCidade, ref resultado).OrderBy(x => x.Nome);
                //ddlCidade.DataBind();
            }
        }

        protected void btnRegistrar_Click(object sender, EventArgs e)
        {
            try
            {
                UsuarioEntities user = new UsuarioEntities();
                user.CPF = txtCPF.Text.Replace(".", "").Replace("-", "").Replace("/", "");
                user.Nome = txtNome.Text;
                user.Senha = new Criptografia("12345").Codificar(txtPassword.Text);
                user.Email = txtEmail.Text;
                user.Endereco = txtEndereco.Text;
                user.Bairro = txtBairro.Text;
                //user.idCidade = int.Parse(ddlCidade.SelectedValue);
                user.Cidade = txtCidade.Text;
                user.CEP = txtCEP.Text;
                user.DataInclusao = DateTime.Now;
                user.idPerfil = 3;
                user.Ativo = true;

                user.TelResidencial = txtTelResidencial.Text;
                user.DDDResidencial = txtDDDResidencial.Text.Replace("(", "").Replace(")", "");
                user.TelComercial = txtTelComercial.Text;
                user.DDDComercial = txtDDDComercial.Text.Replace("(", "").Replace(")", "");
                user.TelCelular = txtTelCelular.Text;
                user.DDDCelular = txtDDDCelular.Text.Replace("(", "").Replace(")", "");
                user.DataNasc = DateTime.Parse(txtDtNasc.Text);
                user.RG = txtRG.Text;
                user.Proissao = txtProfissao.Text;
                user.UF = txtUF.Text;
                user.Numero = txtNumero.Text;
                user.Complemento = txtComplemento.Text;

                Resultado resultado = new UsuarioFacade().Incluir(user);
                if (resultado.Sucesso)
                {
                    user = new UsuarioFacade().GetUsuarioByCPF(user.CPF);

                    Session["UserLogado"] = user;
                    user.DataUltimoAcesso = DateTime.Now;
                    new UsuarioFacade().Alterar(user);

                    PerfilEntities perfil = new PerfilFacade().GetPerfil(user.idPerfil);
                    string sPerfil = "";

                    if (perfil != null)
                        sPerfil = perfil.Descricao;

                    FormsAuthentication.Initialize();

                    FormsAuthenticationTicket fat = new FormsAuthenticationTicket(1,
                                                                                 user.Nome, DateTime.Now,
                                                                                 DateTime.Now.AddMinutes(30), false, sPerfil,
                                                                                 FormsAuthentication.FormsCookiePath);

                    Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(fat)));
                    HttpContext.Current.ApplicationInstance.CompleteRequest();
                    Response.Redirect("../Geral/MinhasInformacoes.aspx");
                    //Response.Redirect(FormsAuthentication.GetRedirectUrl(user.Nome.ToString(), false));
                }
                else
                    FailureText.Text = resultado.ConvertMensagensToText();

            }
            catch (Exception ex)
            {
                FailureText.Text = ex.Message;
            }
        }



    }
}
